#!/usr/bin/python
import os,sys

def generar(grafo,archv):
	archv.write("%d\n" % len(grafo))
	for i in range(1,len(grafo)):
		for j in range(0,len(grafo[i])):
			archv.write("%d%s" % 
				(1+grafo[i][j], " " if j+1 < len(grafo[i]) else ""))
		archv.write("\n")

def leerIncidencia(archv):
	parts = archv.readline().strip().split(" ")
	if len(parts) < 2:
		return None
	
	n,m = int(parts[0]),int(parts[1])
	grafo = []
	for i in range(0,n):
		grafo.append([])
	for i in range(0,m):
		parts = archv.readline().strip().split(" ")
		a,b = int(parts[0]),int(parts[1])
	
		grafo[max(a,b)].append(min(a,b))
	return grafo

def main():
	if(len(sys.argv) < 3):
		print "USO:\n\t %s <archivo con lista incidencia> <archivo salida>" % sys.argv[0]
		return
	entrada = sys.argv[1]
	salida =  sys.argv[2]

	with open(entrada,'r') as fhEntrada:
		with open(salida,'w') as fhSalida:
			grafo = leerIncidencia(fhEntrada)
			while(grafo is not None):
				generar(grafo,fhSalida)
				grafo = leerIncidencia(fhEntrada)
if __name__ == "__main__":
	main()
	
